Parallel Bottom-Up Evaluation of Logic Programs: DeALS on Shared-Memory Multicore Machines
نویسندگان
چکیده
Delivering superior expressive power over RDBMS, while maintaining competitive performance, has represented the main goal and technical challenge for deductive database research since its inception forty years ago. Significant progress toward this ambitious goal is being achieved by the DeALS system through the parallel bottom-up evaluation of logic programs, including recursive programs with monotonic aggregates, on a shared-memory multicore machine. In DeALS, a program is represented as an AND/OR tree, where the parallel evaluation instantiates multiple copies of the same AND/OR tree that access the tables in the database concurrently. Synchronization methods such as locks are used to ensure the correctness of the evaluation. We describe a technique which finds an efficient hash partitioning strategy of the tables that minimizes the use of locks during the evaluation. Experimental results demonstrate the effectiveness of the proposed technique — DeALS achieves competitive performance on non-recursive programs compared with commercial RDBMSs and superior performance on recursive programs compared with other existing systems.
منابع مشابه
Simple, Fast and Scalable Parallel Algorithms for Shared Memory (Thesis Proposal)
To ease the transition into the multicore/manycore era, shared-memory programming must be made more natural and accessible to the community. Furthermore, shared-memory algorithms need to be fast and scalable in order to quickly process large data. In this proposed thesis we will study techniques for simplifying parallel programming and allowing users to easily write efficient and scalable algor...
متن کاملAction-Level Addition of Leads-To Properties to Shared Memory Parallel Programs
We present a method for large-scale automatic addition of Leads-To properties to shared memory parallel programs. Such an automated addition of Leads-To is highly desirable in facilitating the design of multicore programs for average programmers. Our approach is action-level in that we separately analyze and revise the actions of an existing program in order to accommodate a new Leads-To proper...
متن کاملModeling Memory System Performance of NUMA Multicore-Multiprocessors
The performance of many applications depends closely on the way they interact with the computer’s memory system: Many applications obtain good performance only if they utilize the memory system efficiently. Unfortunately, obtaining good memory system performance is often difficult, as developing memory system-aware (system) software requires a thorough and detailed understanding of both the cha...
متن کاملShifting the Parallel Programming Paradigm
Multicore computer architectures are now the standard for desktop computers, high-end servers and personal laptops. Due to the multicore shift in computer architecture, software engineers must write multithreaded programs to harness the resources of these parallel machines. Unfortunately, today’s parallel programming techniques are difficult to reason about, highly error-prone and challenging t...
متن کاملPerformance Evaluation of MPI, UPC and OpenMP on Multicore Architectures
The current trend to multicore architectures underscores the need of parallelism. While new languages and alternatives for supporting more efficiently these systems are proposed, MPI faces this new challenge. Therefore, up-to-date performance evaluations of current options for programming multicore systems are needed. This paper evaluates MPI performance against Unified Parallel C (UPC) and Ope...
متن کامل